package org.xlp;

import java.lang.reflect.Method;

/**
 * Description:
 * <br/>date: 2024/4/17 14:03
 *
 * @version 1.0
 * @author: xlp
 */
public abstract class CT implements BT{
    /**
     * 代理对象函数执行前需要执行的操作
     *
     * @param method 被代理对象的方法对象
     * @param params 被代理对象方法的参数
     */
    @Override
    public void beforeExecute(Method method, Object[] params) {
        System.out.println("beforeExecute");
    }

    /**
     * 代理对象函数执行后需要执行的操作
     *
     * @param method 被代理对象的方法对象
     * @param params 被代理对象方法的参数
     */
    @Override
    public void afterExecute(Method method, Object[] params) {
        System.out.println("afterExecute");
    }

    /**
     * 代理对象函数执行抛出异常是需要执行的操作
     *
     * @param method    被代理对象的方法对象
     * @param params    被代理对象方法的参数
     * @param throwable 被代理对象方法抛出的异常
     */
    @Override
    public void throwExecute(Method method, Object[] params, Throwable throwable) {
        System.out.println("throwExecute");
    }
}
